package com.iscas.tech.service;

import com.iscas.tech.entity.AtNewsinfo;
import com.iscas.tech.param.PageParam;
import com.iscas.tech.vo.AtNewsinfoQueryVo;
import com.iscas.tech.vo.FileWithNews;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.pagination.Paging;

/**
 * 新闻信息表 服务类
 *
 * @author yangyi
 * @since 2020-10-26
 */
public interface AtNewsinfoService extends BaseService<AtNewsinfo> {

    /**
     * @param news 新闻&附件信息
     * @return 新增新闻
     * @throws Exception 新增异常
     */
    boolean saveNews(FileWithNews news) throws Exception;

    /**
     * 修改新闻及其附件信息
     *
     * @param param 新闻及其附件信息
     * @return 修改结果
     * @throws Exception 修改异常
     */
    boolean updateNewsInfo(FileWithNews param) throws Exception;

    /**
     * 删除新闻
     *
     * @param ids 新闻主键ID集合字符串
     * @return 删除结果
     * @throws Exception 删除异常
     */
    boolean deleteNewsInfo(String ids) throws Exception;


    /**
     * 分页获取新闻列表
     *
     * @param pageParam 分页参数
     * @return 新闻列表
     * @throws Exception 查询异常
     */
    Paging<AtNewsinfoQueryVo> getNewsPageList(PageParam pageParam, Integer newsType) throws Exception;

    /**
     * @param id 新闻主键ID
     * @return 查询新闻及其附件信息
     */
    FileWithNews get(Integer id) throws Exception;

    /**
     * 发布新闻
     *
     * @param id 新闻主键ID
     * @return 发布结果
     */
    Boolean releaseNews(Integer id);
}
